#include "comm.hpp"
#include "log.hpp"
using namespace std;

int main(){
    Init init;
    //Log log(Onefile);
    //log.Enable(Classfile);

    // 打开管道
    int fd = open(FIFO_FILE, O_RDONLY);
    if(fd < 0){
        perror("open");
        exit(FILE_OPEN_ERR);
    }
    // 等待写入端打开文件之后，读取端才会打开文件，然后继续执行，否则会阻塞等待
    cout << "server open file done! " << endl;

    // 日志测试
    // log(INFO, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
    // log(Debug, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
    // log(Warning, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
    // log(Error, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
    // log(Fatal, "server open file done, error string: %s, error code: %d", strerror(errno), errno);



    // 开始通信
    while(true){
        char buffer[SIZE];
        int x = read(fd, buffer, sizeof(buffer));
        if(x > 0){
            buffer[x] = 0;
            cout << "client say@ " << buffer << endl;
        }
        else if(x == 0){
            cout << "client quit, me too!" << endl;
            // 日志测试
            //log(Debug, "server quit, error string: %s, error code: %d", strerror(errno), errno);
            break;
        }
        else{
            perror("read");
            exit(FILE_READ_ERR);
            break;
        }
    }

    close(fd);
    return 0;
}